home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_multifile.py < prev    next >
Text File  |  2005-10-18  |  2KB  |  67 lines

  1. import mimetools
  2. import multifile
  3. import cStringIO
  4.  
  5. msg = """Mime-Version: 1.0
  6. Content-Type: multipart/mixed;
  7.         boundary="=====================_590453667==_"
  8. X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7]
  9.  
  10. --=====================_590453667==_
  11. Content-Type: multipart/alternative;
  12.         boundary="=====================_590453677==_.ALT"
  13.  
  14. --=====================_590453677==_.ALT
  15. Content-Type: text/plain; charset="us-ascii"; format=flowed
  16.  
  17. test A
  18. --=====================_590453677==_.ALT
  19. Content-Type: text/html; charset="us-ascii"
  20.  
  21. <html>
  22. <b>test B</font></b></html>
  23.  
  24. --=====================_590453677==_.ALT--
  25.  
  26. --=====================_590453667==_
  27. Content-Type: text/plain; charset="us-ascii"
  28. Content-Disposition: attachment; filename="att.txt"
  29.  
  30. Attached Content.
  31. Attached Content.
  32. Attached Content.
  33. Attached Content.
  34.  
  35. --=====================_590453667==_--
  36.  
  37. """
  38.  
  39. def getMIMEMsg(mf):
  40.     global boundaries, linecount
  41.     msg = mimetools.Message(mf)
  42.  
  43.     #print "TYPE: %s" % msg.gettype()
  44.     if msg.getmaintype() == 'multipart':
  45.         boundary = msg.getparam("boundary")
  46.         boundaries += 1
  47.  
  48.         mf.push(boundary)
  49.         while mf.next():
  50.             getMIMEMsg(mf)
  51.         mf.pop()
  52.     else:
  53.         lines = mf.readlines()
  54.         linecount += len(lines)
  55.  
  56. def test_main():
  57.     global boundaries, linecount
  58.     boundaries = 0
  59.     linecount = 0
  60.     f = cStringIO.StringIO(msg)
  61.     getMIMEMsg(multifile.MultiFile(f))
  62.     assert boundaries == 2
  63.     assert linecount == 9
  64.  
  65. if __name__ == '__main__':
  66.     test_main()
  67.